#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

typedef int BTDataType;

struct BinaryTreeNode
{
	BTDataType data;
	struct BinaryTreeNode* left;
	struct BinaryTreeNode* right;
};

typedef struct BinaryTreeNode BinaryTreeNode;

BinaryTreeNode* CreateNode(BTDataType x);
void PreOrder(BinaryTreeNode* root);
void InOrder(BinaryTreeNode* root);
void PostOrder(BinaryTreeNode* root);
int TreeSize(BinaryTreeNode* root);
int TreeHeight(BinaryTreeNode* root);
int TreeKLevel(BinaryTreeNode* root, int k);